package entity

import "go.mongodb.org/mongo-driver/bson/primitive"

type TradeSellLog struct {
	Id           primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	OID          uint               `bson:"oid" json:"oid""`                  //订单id
	UID          uint               `bson:"uid" json:"uid"`                   //用户id
	WID          uint               `bson:"wid" json:"wid"`                   //仓库id
	Types        int                `bson:"types" json:"types"`               //1=战舰2=建筑3=材料
	TypeID       uint               `bson:"typeID" json:"typeID"`             //商品类型
	TypeName     string             `bson:"typeName" json:"typeName"`         //商品类型名称
	TypeImg      string             `bson:"typeImg" json:"typeImg"`           //商品类型图片
	SellTypeID   uint               `bson:"sellTypeID" json:"sellTypeID"`     //出售类型id
	SellTypeName string             `bson:"sellTypeName" json:"sellTypeName"` //出售类型名称
	SellTypeImg  string             `bson:"sellTypeImg" json:"sellTypeImg"`   //出售类型图片
	Price        float64            `bson:"price" json:"price"`               //单价
	TotalPrice   float64            `bson:"totalPrice" json:"totalPrice"`     //总价
	Num          int64              `bson:"num" json:"num"`                   //数量
	Status       TradeStatus        `bson:"status" json:"status"`
	SellTime     int64              `bson:"sellTime" json:"sellTime"` //出售时间
}

type TradeStatus int

const (
	TradeNone     TradeStatus = iota // 出售中
	TradeFreeze                      // 冻结
	TradeEnd                         // 出售完成
	TradeWithdraw                    // 下架
)

type MarketOrder struct {
	Id           primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	TradeID      uint               `bson:"tradeID" json:"tradeID"`           //订单id
	UID          uint               `bson:"uid" json:"uid"`                   //购买人uid
	SellUID      uint               `bson:"sellUID" json:"sellUID"`           //出售人uid
	OrderNo      string             `bson:"orderNo" json:"orderNo"`           //订单号
	TypeID       uint               `bson:"typeID" json:"typeID"`             //类型id
	TypeName     string             `bson:"typeName" json:"typeName"`         //类型名称
	TypeImg      string             `bson:"typeImg" json:"typeImg"`           //类型图
	TypeType     int                `bson:"typeType" json:"typeType"`         //1卡牌,2材料,3装备
	SellTypeID   uint               `bson:"sellTypeID" json:"sellTypeID"`     //出售类型id
	SellTypeName string             `bson:"sellTypeName" json:"sellTypeName"` //出售类型名称
	SellTypeImg  string             `bson:"sellTypeImg" json:"sellTypeImg"`   //出售类型图片
	Num          int64              `bson:"num" json:"num"`                   //购买数量
	Price        float64            `bson:"price" json:"price"`               //单价
	TotalPrice   float64            `bson:"totalPrice" json:"totalPrice"`     //总价
	Fee          float64            `bson:"fee" json:"fee"`                   //手续费
	PayStatus    TradePayStatus     `bson:"payStatus" json:"payStatus"`       //0=待支付,1=已支付,2=取消
	PayTime      int64              `bson:"payTime" json:"payTime"`           //支付时间
	PayNotify    string             `bson:"payNotify" json:"payNotify"`       //支付回调
	Cancel       int64              `bson:"cancel" json:"cancel"`             //取消时间
	IsHandle     bool               `bson:"isHandle" json:"isHandle"`         //待处理,已处理
	HandleTime   int64              `bson:"handleTime" json:"handleTime"`     //可分账时间(做个5秒延时)
	CreateTime   int64              `bson:"createTime" json:"createTime"`     // 创建时间
}

type TradePayStatus int

const (
	TradePayNone   TradePayStatus = iota //待支付
	TradePay                             //已支付
	TradePayCancel                       //取消
)
